# 阶段2源（这里是Java程序运行的基础环境，一般情况下使用Jre就可以了，但是考虑到程序后续需要debug先用jdk）
FROM openjdk:8u92-jdk-alpine

# 标签（注释） LABEL <key>=<value> <key>=<value> <key>=<value>
LABEL maintainer="yesen"

# 定义工作目录
WORKDIR /app

# 拷贝阶段1的结果
COPY target/*jar-with-dependencies.jar /app.jar

# 小细节（1. 修改时区 2. 重新更新jar的最后更新时间，方便的后续回溯问题）
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone \
&& touch /app.jar

# 声明暴露java应用8080端口
EXPOSE 8080

# Java程序启动，标准命令
ENV JAVA_OPTS=""
ENV PARAMS=""
ENTRYPOINT ["sh", "-c", "java -Djava.security.egd=file:/dev/./urandom $JAVA_OPTS -jar /app.jar $PARAMS"]

# -Djava.security.egd=file:/dev/./urandom 这么做的目的是成为一个密码安全的伪随机数发生器，熵池要有尽可能大的输出。对于生成高质量的加密密钥或者是需要长期保护的场景，一定要这么做